Program Execution-Based Module Cohesion Measurement
نویسندگان
چکیده
Module cohesion describes the degree to which di erent actions performed by a module contribute towards a uni ed function. High module cohesion is a desirable property of a program. The program modi cations during successive maintenance interventions can have negative e ect on the structure of the program resulting in less cohesive modules. Therefore, metrics that measure module cohesion are important for software restructuring during maintenance. The existing static slice based module cohesion metrics signi cantly overestimate cohesion due to the limitations of static slicing. In this paper, we present a novel program execution based approach to measure module cohesion of legacy software. We de ne cohesion metrics based on de nition-use pairs in the dynamic slices of the outputs. Our approach signi cantly improves the accuracy of cohesion measurement. We implemented our technique and measured module cohesion for several programs. Cohesion measurements using our technique were found to be more insightful than static slice based
منابع مشابه
Improving the quality of software cohesion metrics through dynamic analysis
Class cohesion is an important object oriented software quality attribute. Assessing the class cohesion and improving the class quality accordingly during the object oriented design phase allows for cheaper management of the later phases. Most of the cohesion metrics planned in the journalism describes static cohesion measurement at design level. Static metrics is a measure that is applied at t...
متن کاملCoupling and Cohesion
This research examines the structural complexity of software, and specifically the potential interaction of the two most important structural complexities: coupling and cohesion.Coupling and Cohesion are the two terms which very frequently occur together. Together they talk about the quality a module should have. Coupling talks about the interdependencies between the various modules while cohes...
متن کاملEfficient Program Slicing Algorithms for Measuring Functional Cohesion and Parallelism
Program slicing is the task of finding all statements in a program that directly or indirectly influence the value of a variable occurrence. The set of statements that can affect the value of a variable at some point in a program is called a program slice. In several software engineering applications, such as program debugging and measuring program cohesion and parallelism, several slices are c...
متن کاملSoftware similarity-based functional cohesion metric
Cohesion is an important factor used in evaluating software design quality and modularity. The cohesion of a module refers to the relatedness of the module components. In software engineering, highly cohesive modules are highly desirable due to their high reusability and maintainability. Cohesion is classified according to levels. Functional cohesion, the strongest level, refers to how closely ...
متن کاملEffects of Software Changes on Module Cohesion
W e use program slices to model module cohesion. For our purposes, a slice is a projection of program text that includes only the data tokens relevant t o one output. W e define six cohesion metrics in terms of these slices, and evaluate the effects of classes of module changes on these metrics. W e find that the effects on cohesion metrics are notably more predictable when the changes result f...
متن کامل